package com.kotlin.flong.base

/**
 * 单例模式
 */
fun main(args: Array<String>) {

    println(UserInfo.userName) //表示静态的属性
}

//object就是一个单例模式，所有字段都是static静态，方法不是静态
//Java可以控制非静态或静态的方法
//kotlin没有static关键字
object DanLi {
}


//定义一个私有的构造方法
class UserInfo private constructor() {

    //非静态
    var age = 20 //

    //半生静态对象，控制非静态或静态的属性或方法
    companion object {
        //静态
        var userName = "liangjl"

        //单例方法，返回对象为UserInfo，惰性加载，并且且是线程安全
        val instance: UserInfo by lazy { UserInfo() }
    }
}